package com.vviton.zyhj.consumer.controller;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.vviton.zyhj.common.entity.TYyxtDdglYhdzb;
import com.vviton.zyhj.common.utils.ResultJson;
import com.vviton.zyhj.common.utils.page.Page;
import com.vviton.zyhj.common.view.ParamLjdh;
import com.vviton.zyhj.common.view.ParamLpdhcx;
import com.vviton.zyhj.common.view.ParamWddh;
import com.vviton.zyhj.common.view.ViewDhwlxx;
import com.vviton.zyhj.common.view.ViewLpxq;
import com.vviton.zyhj.common.view.ViewWlgzxx;
import com.vviton.zyhj.consumer.service.LpdhService;
import com.vviton.zyhj.content.CommonConstants;
import com.vviton.zyhj.content.SessionHyxx;
import com.wdcloud.framework.core.log.annotation.MonitorLog;

/**
 * ClassName:LpdhController <br/>
 * Function: 礼品兑换Controller. <br/>
 * Date: 2016年11月14日 上午9:56:16 <br/>
 * 
 * @author nifang
 * @version 1.0
 * @since JDK 1.7
 */
@Controller
@RequestMapping("lpdh")
public class LpdhController {

    /** 礼品兑换Service */
    @Autowired
    private LpdhService lpdhService;

    /**
     * 
     * getLpdhPagination,(礼品兑换分页查询). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月14日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月14日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 分页参数
     * @return 礼品兑换分页信息
     * @since JDK 1.7
     */
    @RequestMapping("getLpdhPagination")
    @ResponseBody
    @MonitorLog(text = "礼品兑换分页查询", containRequest = true)
    public Page getLpdhPagination(@RequestBody ParamLpdhcx param) {
        return lpdhService.getLpdhPagination(param);
    }

    /**
     * 
     * getWndhPagination,(我能兑换分页查询). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月16日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月16日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 分页参数
     * @param req Servlet请求
     * @return 我能兑换分页信息
     * @since JDK 1.7
     */
    @RequestMapping("getWndhPagination")
    @ResponseBody
    @MonitorLog(text = "我能兑换分页查询", containRequest = true)
    public Page getWndhPagination(@RequestBody ParamLpdhcx param, HttpServletRequest req) {
        String zh = CommonConstants.getRyzh(req);
        param.setZh(zh);
        return lpdhService.getLpdhPagination(param);
    }

    /**
     * 
     * getLpxq,(礼品详情页面-获取礼品详情). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月14日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月14日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param lpid 礼品编号
     * @param ywy 业务域
     * @param req Servlet请求
     * @return 礼品详情
     * @since JDK 1.7
     */
    @RequestMapping("getLpxq")
    @ResponseBody
    @MonitorLog(text = "礼品详情页面-获取礼品详情", containRequest = true)
    public ViewLpxq getLpxq(@RequestParam String lpid, @RequestParam String ywy, HttpServletRequest req) {
        String zh = CommonConstants.getRyzh(req);
        return lpdhService.getLpxq(lpid, zh, ywy);
    }

    /**
     * 
     * getLpdhxq,(兑换确认页面-获取礼品详情). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月17日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月17日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param lpid 礼品编号
     * @param ywy 业务域
     * @param req Servlet请求
     * @return 礼品详情
     * @since JDK 1.7
     */
    @RequestMapping("getLpdhxq")
    @ResponseBody
    @MonitorLog(text = "兑换确认页面-获取礼品详情", containRequest = true)
    public ViewLpxq getLpdhxq(@RequestParam String lpid, @RequestParam String ywy, HttpServletRequest req) {
        String zh = CommonConstants.getRyzh(req);
        return lpdhService.getLpxq(lpid, zh, ywy);
    }

    /**
     * 
     * getWddhPagination,(分页查询我的兑换信息). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月15日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月15日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 查询参数
     * @param req Servlet请求
     * @return 我的兑换信息
     * @since JDK 1.7
     */
    @RequestMapping("getWddhPagination")
    @ResponseBody
    @MonitorLog(text = "分页查询我的兑换信息", containRequest = true)
    public Page getWddhPagination(@RequestBody ParamWddh param, HttpServletRequest req) {
        String dhrzh = CommonConstants.getRyzh(req);
        param.setDhrzh(dhrzh);
        return lpdhService.getWddhPagination(param);
    }

    /**
     * 
     * updateShdz,(编辑收货地址). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月16日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月16日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 用户地址entity
     * @param req Servlet请求
     * @return 执行结果
     * @since JDK 1.7
     */
    @RequestMapping("updateShdz")
    @ResponseBody
    @MonitorLog(text = "编辑收货地址", containRequest = true)
    public ResultJson updateShdz(@RequestBody TYyxtDdglYhdzb param, HttpServletRequest req) {
        String zh = CommonConstants.getRyzh(req);
        param.setZh(zh);
        return lpdhService.updateShdz(param);
    }

    /**
     * 
     * getShdz,(获取收货地址). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月17日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月17日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param req Servlet请求
     * @return 收货地址
     * @since JDK 1.7
     */
    @RequestMapping("getShdz")
    @ResponseBody
    @MonitorLog(text = "获取收货地址", containRequest = true)
    public TYyxtDdglYhdzb getShdz(HttpServletRequest req) {
        String zh = CommonConstants.getRyzh(req);
        return lpdhService.getShdz(zh);
    }

    /**
     * 
     * updateLjdh,(立即兑换). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年11月17日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年11月17日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param paramLjdh 立即兑换传入参数
     * @param req Servlet请求
     * @return 执行结果
     * @since JDK 1.7
     */
    @RequestMapping("updateLjdh")
    @ResponseBody
    @MonitorLog(text = "立即兑换", containRequest = true)
    public ResultJson updateLjdh(@RequestBody ParamLjdh paramLjdh, HttpServletRequest req) {
        SessionHyxx hyxx = CommonConstants.getHyxx(req);
        paramLjdh.setDhrzh(hyxx.getZh());
        paramLjdh.setDhrmc(hyxx.getHync());
        return lpdhService.updateLjdh(paramLjdh);
    }

    /**
     * 
     * getDhwlxx,(查询兑换物流信息). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年12月22日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年12月22日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param dhid 兑换编号
     * @return 兑换物流信息
     * @since JDK 1.7
     */
    @RequestMapping("getDhwlxx")
    @ResponseBody
    @MonitorLog(text = "查询兑换物流信息", containRequest = true)
    public ViewDhwlxx getDhwlxx(@RequestParam String dhid) {
        return lpdhService.getDhwlxx(dhid);
    }

    /**
     * 
     * getWlgzxx,(查询物流跟踪信息). <br/>
     * Author: nifang <br/>
     * Create Date: 2016年12月22日 <br/>
     * ===============================================================<br/>
     * Modifier: nifang <br/>
     * Modify Date: 2016年12月22日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param dhid 兑换编号
     * @return 物流跟踪信息
     * @since JDK 1.7
     */
    @RequestMapping("getWlgzxx")
    @ResponseBody
    @MonitorLog(text = "查询物流跟踪信息", containRequest = true)
    public ViewWlgzxx getWlgzxx(@RequestParam String dhid) {
        return lpdhService.getWlgzxx(dhid);
    }

    /**
     * updateShdzUrl,(新增提供北京保存详细地址接口（restful形式）). <br/>
     * Author: zhucb <br/>
     * Create Date: 2017年3月31日 <br/>
     * ===============================================================<br/>
     * Modifier: zhucb <br/>
     * Modify Date: 2017年3月31日 <br/>
     * Modify Description: <br/>
     * ===============================================================<br/>
     * 
     * @param param 参数
     * @return 成功或者失败
     * @since JDK 1.7
     */
    @RequestMapping("updateShdzUrl")
    @ResponseBody
    @MonitorLog(text = "保存详细收货地址", containRequest = true)
    public ResultJson updateShdzUrl(@RequestBody TYyxtDdglYhdzb param) {
        return lpdhService.updateShdz(param);
    }
}
